package com.example.springsecurity.service;

import com.example.springsecurity.domain.College;
import com.example.springsecurity.domain.Major;
import com.example.springsecurity.domain.SysUser;
import com.example.springsecurity.domain.TbClass;
import com.example.springsecurity.utils.ResultBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CollegeService {

    /**
     * 获取所有学院信息
     * @return
     */
    ResultBean getCollege();

    ResultBean getMajor(Integer collegeId);


    /**
     * 获取学院专业班级
     * @return
     */
    public ResultBean getCollegeMajorClass();

    ResultBean getPrincipal(Integer collegeId);


    /**
     * 根据学院id,专业id,班级id去获取学生用户信息
     * @param collegeId   学院id
     * @param majorId     专业id
     * @param tbClassId   班级id
     * @return
     */
    List<SysUser> getStudent(Integer collegeId,Integer majorId,Integer tbClassId);

    /**
     * 根据用户名获取其所在班级名称
     * @param userName
     * @return
     */
    String getClassNameByUserName(String userName);

    /**
     * 添加学院信息
     * @param college
     * @return
     */
    public boolean insertCollege(College college);

    /**
     * 修改学院信息
     * @param college
     * @return
     */
    public boolean updateCollege(College college);


    /**
     * 添加专业信息
     * @param major
     * @return
     */
    public boolean insertMajor(Major major);

    /**
     * 修改专业信息
     * @param major
     * @return
     */
    public boolean updateMajor(Major major);

    /**
     * 添加班级信息
     * @param tbClass
     * @return
     */
    public boolean insertClass(TbClass tbClass);


    /**
     * 修改班级信息
     * @param tbClass
     * @return
     */
    public boolean updateClass(TbClass tbClass);


    /**
     * 获取所有学院信息
     * @return
     */
    List<College> getColleges();

    /**
     * 获取所有班级信息
     * @return
     */
    List<TbClass> getTbClasses();
}
